#ifndef IIC_H
#define IIC_H
#include "main.h"

#define IIC_SCL(x)        do{ x ? \
							  HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_SET) : \
							  HAL_GPIO_WritePin(SCL_GPIO_Port, SCL_Pin, GPIO_PIN_RESET); \
						  }while(0)       /* SCL */
#define IIC_SDA(x)        do{ x ? \
							  HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_SET) : \
							  HAL_GPIO_WritePin(SDA_GPIO_Port, SDA_Pin, GPIO_PIN_RESET); \
						  }while(0)       /* SDA */

#define IIC_READ_SDA     HAL_GPIO_ReadPin(SDA_GPIO_Port,SDA_Pin)


static void iic_delay(void);
void iic_start(void);
void iic_stop(void);
void iic_ack(void);
void iic_nack(void);
uint8_t iic_wait_ack(void);
uint8_t iic_read_byte(uint8_t ack);
void iic_send_byte(uint8_t data);							
#endif

